finish
endif
-
syn clear
syn sync fromstart
syn sync linebreaks=1
syn region hledgerInclude start=/^!include/ end=/^/
syn region hledgerDirective start=/^[A-Z]/ end=/^/ contains=hledgerComment
-syn region hledgerTransaction start=/^\d[^ ]\+ / end=/^\s*$/
-syn match hledgerTransactionHead "^[0-9/]\+\(=[0-9/]\+\)\?\(\s\+[!*]\)\?" contained containedin=hledgerTransaction
-syn match hledgerTransactionDate "[0-9/]\+" contained containedin=hledgerTransactionHead
-syn match hledgerTransactionComment ";.*" contained containedin=hledgerTransaction,hledgerPosting,hledgerPostingOdd
+syn region hledgerTransaction start=/^\d[^ ]\+/ end=/^\s*$/
+syn match hledgerTransactionHead "^[0-9/]\+\(=[0-9/]\+\)\?\(\s\+[!*]\)\?" contained containedin=hledgerTransaction nextgroup=hledgerTransactionDescription
+syn match hledgerTransactionDate "[0-9/]\+" contained containedin=hledgerTransactionHead
+syn match hledgerTransactionDescription "\s[^;]\+"ms=s+1 contained containedin=hledgerTransaction
+syn match hledgerTransactionComment ";.*" contained containedin=hledgerTransaction,hledgerPosting,hledgerPostingOdd
-syn region hledgerPostingOdd start=/^\s\+[^; ]/ end=/^/ contained containedin=hledgerTransaction nextgroup=hledgerPosting
-syn region hledgerPosting start=/^\s\+[^; ]/ end=/^/ contained containedin=hledgerTransaction nextgroup=hledgerPostingOdd
+syn match hledgerPostingAmountOdd " \(\s*[^; ]\+\)\+"ms=s+0 contained containedin=hledgerPostingOdd contains=hledgerNumberOdd
+syn match hledgerPostingAmount " \(\s*[^; ]\+\)\+"ms=s+0 contained containedin=hledgerPosting contains=hledgerNumber
syn match hledgerPostingAccountOdd "^\s\+[^; ][^; ]*" contained containedin=hledgerPostingOdd nextgroup=hledgerPostingAmountOdd contains=hledgerNumberOdd,hledgerAccountSeparatorOdd
syn match hledgerPostingAccount "^\s\+[^; ][^; ]*" contained containedin=hledgerPosting nextgroup=hledgerPostingAmount contains=hledgerNumber,hledgerAccountSeparator
-syn match hledgerPostingAmountOdd " *\([^;]*\|$\)" contained containedin=hledgerPostingOdd contains=hledgerNumberOdd
-syn match hledgerPostingAmount " *\([^;]*\|$\)" contained containedin=hledgerPosting contains=hledgerNumber
+syn region hledgerPostingOdd start=/^\s\+[^; ]/ end=/^/ contained containedin=hledgerTransaction nextgroup=hledgerPosting
+syn region hledgerPosting start=/^\s\+[^; ]/ end=/^/ contained containedin=hledgerTransaction nextgroup=hledgerPostingOdd
-syn match hledgerTag /[^:, ]\+:[^,]*/ contained containedin=hledgerTransactionComment nextgroup=hledgerTagValue
-syn match hledgerTagValue /:[^,]*/ms=s+1 contained containedin=hledgerTag
+syn match hledgerTag /[^;, :]\+:[^;,]*/ contained containedin=hledgerTransactionComment nextgroup=hledgerTagValue
+syn match hledgerTagValue /[^;, :]:[^,;]*/ms=s+2 contained containedin=hledgerTag
if version >= 508 || !exists("did_hledger_syntax_inits")
- hi hledgerComment term=bold cterm=bold ctermfg=6 ctermbg=0 gui=bold guifg=#4169E1
- hi hledgerInclude term=bold cterm=bold gui=bold
- hi hledgerDirective term=bold cterm=bold gui=bold
- hi hledgerAccountSeparatorOdd term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=black guibg=gray90
- hi hledgerAccountSeparator term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=black guibg=lightgreen
- hi hledgerNumberOdd term=bold cterm=bold ctermfg=4 ctermbg=none gui=bold guifg=blue guibg=gray90
- hi hledgerNumber term=bold cterm=bold ctermfg=4 ctermbg=none gui=bold guifg=blue guibg=lightgreen
- hi hledgerPostingOdd cterm=bold ctermbg=none guibg=gray90
- hi hledgerPosting cterm=bold ctermbg=none guibg=lightgreen
- hi hledgerPostingAccountOdd term=underline cterm=bold ctermfg=0 ctermbg=none guifg=gray30 guibg=gray90
- hi hledgerPostingAccount term=underline cterm=bold ctermfg=0 ctermbg=none guifg=gray30 guibg=lightgreen
- hi hledgerPostingAmountOdd cterm=bold ctermfg=3 ctermbg=none gui=bold guibg=gray90
- hi hledgerPostingAmount cterm=bold ctermfg=3 ctermbg=none gui=bold guibg=lightgreen
- hi hledgerTag term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=orange
- hi hledgerTagValue term=bold cterm=bold ctermfg=1 ctermbg=none gui=NONE guifg=red
- hi hledgerTransaction cterm=bold ctermbg=none gui=bold
- hi hledgerTransactionComment term=bold cterm=bold ctermfg=6 ctermbg=none gui=bold guifg=#4169E1
- hi hledgerTransactionDate cterm=bold ctermfg=5 ctermbg=none gui=bold guibg=lightgoldenrod
- hi hledgerTransactionHead term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=black guibg=lightgreen
+ if version < 508
+ let did_hledger_syntax_inits = 1
+ command! -nargs=+ HiLink hi link <args>
+ else
+ command! -nargs=+ HiLink hi def link <args>
+ endif
+ hi SpecialKey gui=bold guifg=lightgoldenrod
+ hi Comment term=bold cterm=bold ctermfg=6 ctermbg=0 gui=bold guifg=#4169E1
+ hi Comment term=bold cterm=bold ctermfg=6 ctermbg=0 gui=bold guifg=#4169E1
+ HiLink hledgerComment Comment
+ hi hledgerInclude term=bold cterm=bold gui=bold
+ hi hledgerDirective term=bold cterm=bold gui=bold
+ hi hledgerAccountSeparatorOdd term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=DarkGoldenrod2 guibg=gray90
+ hi hledgerAccountSeparator term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=DarkGoldenrod2 guibg=lightgreen
+ hi hledgerNumberOdd term=bold cterm=bold ctermfg=4 ctermbg=none gui=bold guifg=blue guibg=gray90
+ hi hledgerNumber term=bold cterm=bold ctermfg=4 ctermbg=none gui=bold guifg=blue guibg=lightgreen
+ hi hledgerPostingOdd cterm=bold ctermbg=none guibg=NONE
+ hi hledgerPosting cterm=bold ctermbg=none guibg=NONE
+ hi hledgerPostingAccountOdd term=underline cterm=bold ctermfg=0 ctermbg=none guifg=gray30 guibg=gray90
+ hi hledgerPostingAccount term=underline cterm=bold ctermfg=0 ctermbg=none guifg=gray30 guibg=lightgreen
+ hi hledgerPostingAmountOdd cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=DarkGoldenrod2 guibg=gray90
+ hi hledgerPostingAmount cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=DarkGoldenrod2 guibg=lightgreen
+ hi hledgerTag term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=orange
+ hi hledgerTagValue term=bold cterm=bold ctermfg=1 ctermbg=none gui=NONE guifg=red
+ hi hledgerTransaction cterm=bold ctermbg=none gui=bold
+ hi hledgerTransactionComment term=bold cterm=bold ctermfg=6 ctermbg=none gui=bold guifg=#4169E1
+ hi hledgerTransactionDate cterm=bold ctermfg=5 ctermbg=none gui=bold guibg=lightgoldenrod
+ hi hledgerTransactionDescription cterm=bold ctermfg=5 ctermbg=none gui=bold guibg=lightgoldenrod
+ hi hledgerTransactionHead term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=black guibg=lightgreen
+ delcommand HiLink
endif
let b:current_syntax = "hledger"